﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;

namespace nl.tno.ict.multitouch.wpfmultitouch.controls
{
    public class MTCombobox : ComboBox
    {
        public MTCombobox()
        {
            // Sets the TouchEnabledObjectProperty for the element always true.
            MTProperties.SetTouchEnabled(this, true);
        }
        /// <summary>
        /// Gets or sets a bool that describes the value of a CanBeScaledObjectProperty for the element.
        /// </summary>
        public bool CanBeScaled { get { return MTProperties.GetCanBeScaled(this); } set { MTProperties.SetCanBeScaled(this, value); } }
        /// <summary>
        /// Gets or sets a bool that describes the value of a CanBeDraggedObjectProperty for the element.
        /// </summary>
        public bool CanBeDragged { get { return MTProperties.GetCanBeDragged(this); } set { MTProperties.SetCanBeDragged(this, value); } }
        /// <summary>
        /// Gets or sets a bool that describes the value of a CanBeClickedObjectProperty for the element.
        /// </summary>
        public bool CanBeClicked { get { return MTProperties.GetCanBeClicked(this); } set { MTProperties.SetCanBeClicked(this, value); } }
        /// <summary>
        /// Gets or sets a bool that describes the value of a CanBeRotatedObjectProperty for the element.
        /// </summary>
        public bool CanBeRotated { get { return MTProperties.GetCanBeRotated(this); } set { MTProperties.SetCanBeRotated(this, value); } }
        /// <summary>
        /// Gets or sets a bool that describes the value of a AdornersEnabledProperty for the element.
        /// </summary>
        public bool AdornersEnabled { get { return MTProperties.GetAdornersEnabled(this); } set { MTProperties.SetAdornersEnabled(this, value); } }

        public bool IsDragging
        {
            get { return MTProperties.GetIsDragging(this); }
            set { MTProperties.SetIsDragging(this, value); }
        }

        public bool IsScaling
        {
            get { return MTProperties.GetIsScaling(this); }
            set { MTProperties.SetIsScaling(this, value); }
        }

        public bool IsRotating
        {
            get { return MTProperties.GetIsRotating(this); }
            set { MTProperties.SetIsRotating(this, value); }
        }
        /// <summary>
        /// Gets or sets the onTop dependency property. When true, when a finger touches the object the object
        /// gets on top of the screen (z-index changes).
        /// </summary>
        public bool OnTop
        {
            get { return MTProperties.GetOnTop(this); }
            set { MTProperties.SetOnTop(this, value); }
        }
    }
}
